/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package AST;

import java.util.LinkedList;

/**
 *
 * @author Eddy
 */
public class Pentagrama extends Instruccion{
    public Clave clave;   
    public TipoCompas compas;
    public String Instrumento;
    
    public LinkedList <Compas> compases;
    
    public Pentagrama(int l,int c,Clave clv,LinkedList<Compas> lcom)
    {
        NoLinea=l;
        Columna=c;
        clave=clv;
        compases=lcom;
    }
   public boolean CargarTS()
   {
       boolean res=true;
       int i;
       if(clave!=null)
       {
           clave.tabla=tabla;
           res=clave.CargarTS();
           if(res)
           {
               res=tabla.BuscarInstrumento(Instrumento);
               if(!res){Errores.InsertarError(NoLinea, Columna, "Error el "+Instrumento+" No esta declarado" );
               }
           }
           
             if(compases!=null&&res)
             {
              for(i=0;i<compases.size()&&res;i++)
              {
                  compases.get(i).Do=clave.Do;
                  compases.get(i).Re=clave.Re;
                  compases.get(i).Fa=clave.Fa;
                  compases.get(i).Sol=clave.Sol;
                  
                  compases.get(i).tabla=tabla;
                  res=compases.get(i).CargarTS();
                  int t=2;
                  t++;
                  /*if(compases.get(i).TiempoTotal>tabla.Compas)
                  {res=false;}//Erro:r El compas sobre pasa el tiempo Establecido*/
              }
             }
           
       }
       return res;
   }
   
   public boolean Traduccion()
   {
       boolean res=true;
       int i;
       String temp="";
       String temp1="";
       String tempTTABC="";
       res=this.clave.Traduccion();
       
       if(res)
       {
           for(i=0;i<this.compases.size()&&res;i++)
           {
               res=this.compases.get(i).Traduccion();
               temp=temp+this.compases.get(i).Traduccion;
               tempTTABC=tempTTABC+"|"+this.compases.get(i).TraduccionABC4J;
               // System.out.println("++----"+this.compases.get(i).Traduccion+"===");
           }
       }
       if(res)
       {
           String t1="I["+this.Instrumento+"]";
           String t2="R:"+this.Instrumento+"\n ";
           this.Traduccion=t1+clave.Traduccion+temp;
           
           this.TraduccionABC4J=t2+"M:"+Integer.toString(tabla.N)+"/"+Integer.toString(tabla.D)+"\n "+clave.TraduccionABC4J+tempTTABC+"\n ";
           
       }
       return res;
   }
 
}
